Applications and computing services are often made available over the Internet or other computer networks. Content providers, application providers, and/or computing service providers often utilize remote computing services to providing access to electronic resources, such as databases or web services. Electronic resources may include processing services, memory services, storage services, networking services and generally any computing services supported by hardware that is used in a computing environment. Often hardware and/or software used to support the desired services are dynamically scalable to meet the changing load for the services at any given time. Users, for example, may rent, lease, or otherwise pay for access to networked computing resources and computing services, and thus reduce the burden of providing local hardware and/or software for computing services, as compared with implementations without network accessible computing services.
To facilitate increased utilization of network accessible computing resources provided via a data center, virtualization technologies can allow a single physical computing machine to host one or more instances of virtual machines that appear and operate as independent machines to a connected computer user. With virtualization, the single physical computing device can create, maintain or delete virtual machines in a dynamic manner. In turn, users can request computer resources from a data center and be provided with varying numbers of virtual machine resources on an “as needed” basis or at least on an “as requested” basis. Each virtual machine or computing instance may also host one or more applications (e.g. distributed applications) that provide services to customers. As the scale and scope of data centers has increased, the task of provisioning, administering, and monitoring the physical and virtual computing resources of the data center has become increasingly complicated.